{
 "metadata": {
  "name": ""
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "%matplotlib inline\n",
      "import numpy as np\n",
      "import matplotlib.pyplot as plt\n",
      "from numba import autojit\n",
      "from sklearn.cross_validation import train_test_split\n",
      "from sklearn.datasets import make_low_rank_matrix"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 1
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "n_samples = int(1e4)\n",
      "n_features = 100\n",
      "\n",
      "\n",
      "rng = np.random.RandomState(42)\n",
      "w_true = rng.normal(size=n_features)\n",
      "# half of non-informative features\n",
      "w_true[n_features // 2:] = 0\n",
      "\n",
      "intercept_true = np.mean(np.abs(w_true)) / 50\n",
      "\n",
      "X = make_low_rank_matrix(n_samples, n_features,\n",
      "                         effective_rank=n_features // 3,\n",
      "                         random_state=rng)\n",
      "\n",
      "# ground truth\n",
      "y_true = np.dot(X, w_true) + intercept_true\n",
      "\n",
      "\n",
      "# add some label noise\n",
      "y_noise = rng.normal(scale=y_true.std() / 50, size=n_samples)\n",
      "y_decision = y_true + y_noise\n",
      "\n",
      "# threshold as a balanced binary classification problem\n",
      "y = np.where(y_decision > 0, 1, -1)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 289
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Check the balance of the 2 classes are approximately balanced:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "np.mean(y == 1)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 290,
       "text": [
        "0.56120000000000003"
       ]
      }
     ],
     "prompt_number": 290
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "plt.title(\"Distribution of the target decision value\")\n",
      "_ = plt.hist(y_decision, bins=30)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "iVBORw0KGgoAAAANSUhEUgAAAYMAAAEKCAYAAADw2zkCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt0k/X9B/B32qSitCm00IQmhUgvlnApKBRxY1Sh1aEw\nBthRpISLcoZ6ph5+E/BaJtKyORV0HbsUVnUKeIaFMehQj3E6R4vKVAiMwlpo0wuXUkih0Nvn90dP\nnzX0krRN0xTer3NyTvs83+f7fPIked55rlGJiICIiG5ofr1dABER9T6GARERMQyIiIhhQEREYBgQ\nEREYBkREBIaB1y1fvhxr1671SF+nTp1CUFAQms8OTkhIQFZWlkf6BoDp06fj7bff9lh/7nruuecw\nePBghIeHu9U+LS0NqampPVyV7/LE656eno5HHnnEZbveek90xM/PD//97397u4w+T93bBVxPTCYT\nTp8+DbVaDX9/f5jNZixcuBDLli2DSqUCAPz2t791u6/NmzfjnnvuabfN0KFD4XA4lP9VKpUyn85K\nS0vDiRMnnD7oe/bs6VJf3XHq1Cm8+uqrKC4uRmhoaKvxVqsVqampKC4uVoZ19Tm3ZdGiRYiIiMBL\nL73ksT57ev7ded2brV692q12vfGeIO/gloEHqVQq7N69GxcvXsSpU6ewatUqrF+/HkuXLu1SXx1d\nD1hfX9+dUn3WqVOnEBoa2mYQtMeXrptsaGjo7RKIukbIY0wmk3z88cdOw/Lz88XPz08OHz4sIiIW\ni0Wee+45ERE5c+aM3H///TJgwAAJCQmRyZMnS2NjoyxYsED8/Pzk5ptvlsDAQPnVr34lhYWFolKp\nJCsrS4YOHSpTpkyRoqIiUalU0tDQICIiCQkJsnr1aomPjxetVis/+tGPpLKyUkREPvnkEzEajU61\nDRs2TD766CPZu3evBAQEiEajkcDAQBk7dqyIiEyZMkX++Mc/iohIY2OjvPTSSzJs2DAJCwuThQsX\nyoULF0RElNqys7Nl6NChMmjQIHn55ZfbXU5VVVWSmpoqgwcPlmHDhsnatWulsbFRPvzwQ7n55pvF\nz89PAgMDZfHixU7TVVdXS79+/ZTxQUFBUlpaKmlpaZKcnCwLFy6UoKAgGTlypHz55ZfKdHa7XWbP\nni2DBw+WW2+9VTZu3NhmXb/73e9Eo9FIQECABAYGysyZM0VEJD09XSIjIyUoKEjMZrN88MEHyjRb\ntmyRu+66S5566ikJDQ2V559/Xs6dOycPPPCAaLVamTBhgjz77LPy/e9/X5nmyJEjMm3aNAkJCZHb\nbrtNtm/f3uH8r7Vv3z657bbbJDg4WB5//HGn10lEJCsrS0aMGCEDBw6Ue++9V06ePKmMO3TokDJv\nnU4n69atExGRF198URYsWCAiIjU1NfLQQw9JaGioDBgwQCZMmCCnT5/usffE/v37Ra/XS2NjozJs\nx44dMmbMGBERycvLkzvvvFMGDBggQ4YMkccff1xqa2uVtiqVSk6cONGqvubXx51lTyIMAw9qKwxE\nRIYOHSqbNm0SEZFFixbJ888/LyIiq1atkp/+9KdSX18v9fX18vnnn7fbV/OHy2KxyOXLl+XKlSvK\nsOYwmDJlihgMBjl8+LBcunRJ5syZo3zA2wqDlvNIS0uT1NRUp/EJCQmSlZUlIk0rmKioKCksLJTq\n6mqZPXu20r65jmXLlsmVK1fkm2++kZtuukmOHDnS5nJKTU2VWbNmSXV1tRQVFUlMTIwyH6vV2qrO\nltoa/+KLL0q/fv1k79690tjYKKtXr5Y777xTREQaGhrk9ttvl5deeknq6urkv//9rwwfPlz+/ve/\nt9l/y9en2fvvvy9lZWUiIrJt2zbp37+/lJeXi0jTykatVsubb74pDQ0NUlNTIz/5yU8kJSVFampq\nxGazSUREhEyePFlEmgLNaDTKn/70J2loaJCDBw/KoEGDxGaztTv/ls6cOSNBQUHyl7/8Rerr6+W1\n114TtVqtLL+cnByJioqSo0ePSkNDg6xdu1buuusuERG5ePGi6PV6efXVV+Xq1avicDgkLy9PRJxf\n/02bNsmMGTOkpqZGGhsb5euvv5aLFy+KSM+9JyIjI+XDDz9U/p87d66sX79eRES++uorycvLk4aG\nBikqKpIRI0bI66+/rrRtGQYt62t+fZrDwNWyv9FxN5EXhIeHo7KystXwgIAAlJWVoaioCP7+/vje\n977nsq+0tDTcfPPNuOmmm1qNU6lUWLhwIcxmM2655Ra89NJL2L59u1u7UaTpi0G74//85z9jxYoV\nMJlM6N+/P9LT07F161Y0NjYqbV588UXcdNNNGDNmDOLi4vDNN9+06qehoQHbtm1Deno6+vfvj2HD\nhmHFihXKsQpXtbY3fvLkybjvvvugUqmwYMECZd4HDhzA2bNn8dxzz0GtVuPWW2/Fww8/jK1bt7o9\nj7lz50Kv1wMAkpOTER0djby8PGV8eHg4HnvsMfj5+UGj0WDHjh1Ys2YN+vXrhxEjRsBisSh97t69\nG7feeissFgv8/PwwduxYzJ49G++//74y746WwZ49ezBq1CjMnj0b/v7+ePLJJ5XaAGDTpk1YvXo1\nbrvtNvj5+WH16tX497//jVOnTmH37t0IDw/HU089hYCAAAQGBiI+Pr7VfAMCAnDu3DkUFBRApVJh\n3LhxCAoKalWLp94TAJCSkoL33nsPAOBwOLB3716kpKQAAG6//XbEx8fDz88Pw4YNw7Jly/Dpp5+2\nu4za42rZ3+gYBl5QUlKCkJAQ5f/mD93Pf/5zREVFISkpCZGRkVi/fr3LviIiItweP3ToUNTV1eHs\n2bNdrPx/ysrKMGzYMKe+6+vrUVFRoQxruVK65ZZbcOnSpVb9nD17FnV1da36stvt3apPp9M5zfvK\nlStobGzEyZMnUVpaioEDByqP9PR0nD592u2+33rrLYwbN06Z/tChQzh37pwyvuUyP3PmDOrr652G\nGY1G5e+TJ08iLy/PqZ53331XWY6uDgSXlpY69Xft/E+ePIknnnhC6bv52IvdbkdJSQmGDx/u8vmm\npqbi3nvvxbx582AwGLBy5co2j1F56j0BAPPnz8eOHTtQW1uLHTt24I477lCe17Fjx/DAAw9gyJAh\nCA4OxrPPPuu0/N3latnf6BgGPezAgQMoLS3F97///VbjAgMD8corr+DEiRPYtWsXXn31VXzyyScA\n2l8puFpZnDp1yulvjUaDQYMGoX///rh8+bIyrqGhAWfOnHG73/DwcBQVFTn1rVarnVbC7hg0aBA0\nGk2rvq5dwbWnrTo7qj0iIgK33norzp8/rzwuXryI3bt3u9X/yZMnsWzZMvzmN79BZWUlzp8/j1Gj\nRjl9e285zeDBg6FWq53Odmr599ChQzFlyhSnehwOB37zm9+4fC5A0+vQsj8RadX/73//e6f+L126\nhEmTJiEiIqLdUzBbzletVuOFF17A4cOH8cUXX2D37t1466232qzFE+8JABgxYgSGDRuGvXv34t13\n38X8+fOVccuXL4fZbMbx48dx4cIFvPzyy05bHy3179/fKXDKy8uVv10t+xsdw8DDmlcSzSuclJQU\npKamYuTIkU7jgabN1uPHj0NEoNVq4e/vDz+/ppdEp9PhxIkTnZ73O++8gyNHjuDy5ct44YUX8OCD\nD0KlUiEmJgZXrlzBnj17UFdXh7Vr1+Lq1avKtHq9HkVFRe3uokhJScFrr72GoqIiVFdX45lnnsG8\nefOUejtaFi35+/sjOTkZzz77LKqrq3Hy5Em89tprWLBggVvPUafT4dy5c7h48WKH82kWHx+PoKAg\n/PKXv0RNTQ0aGhpw6NAhfPnll+3233KFeenSJahUKgwaNAiNjY3YsmULDh061O78/P39MXv2bKSl\npaGmpgZHjx7F22+/raxs77//fhw7dgzvvPMO6urqUFdXhwMHDuDo0aNtzv9a999/Pw4fPowPPvgA\n9fX12Lhxo9MK76c//SnWrVsHm80GALhw4YKyG+SBBx5AWVkZNmzYgKtXr8LhcCA/P7/VMrRarfju\nu+/Q0NCAoKAgaDQa+Pv7t6rFU++JZvPnz8frr7+Ozz77DA8++KAyvLq6GkFBQbjllltw9OjRDk/P\nHjt2LHbs2IGamhocP37c6foLV8v+Rscw8LAZM2ZAq9Vi6NChSE9Px4oVK7BlyxZlfMtzwo8fP47E\nxEQEBQXhrrvuwmOPPYYpU6YAaDrve+3atRg4cCBeffVVZdprtRzWfMxg0aJFGDJkCGpra7Fx40YA\nQHBwMDIzM/Hwww/DaDQiMDDQafdC84cvNDQU48ePbzWfJUuWIDU1FT/4wQ8wfPhw3HLLLXjjjTfa\nrKOjYQDwxhtvoH///hg+fDgmT56Mhx56CIsXL3Y5HQDExsYiJSUFw4cPR0hICMrKyto8z775f39/\nf+zevRv//ve/MXz4cAwePBjLli1zCpOWli5dCpvNhoEDB2L27Nkwm81YsWIFJk2aBL1ej0OHDjlt\n5bU17zfffBMXLlyAXq+HxWJBSkoKAgICAABBQUHYt28ftm7dCoPBgCFDhmD16tWora1tc/7XCg0N\nxfvvv49Vq1Zh0KBBOH78uFM9s2bNwsqVKzFv3jwEBwdj9OjR+Pvf/w6gaUv0ww8/xF//+lcMGTIE\nMTExsFqtrZ5HeXk5HnzwQQQHB8NsNiMhIaHNi/o8+Z4AmsLlH//4B6ZOneq0W/WVV17Bu+++C61W\ni2XLlmHevHmt3vfNmo+H6HQ6LF68GAsWLFDGu1r2NzqVdBDVS5Yswd/+9jeEhYXhu+++A9C0n3v3\n7t0ICAhAZGQktmzZguDgYABNVzFu3rwZ/v7+2LhxI5KSkgAAX331FRYtWoQrV65g+vTp2LBhgxee\nGpFvWLlyJU6fPu30pYDI13S4ZbB48WLk5uY6DUtKSsLhw4fxzTffICYmBunp6QAAm82Gbdu2wWaz\nITc3F48++qiySbh8+XJkZWWhoKAABQUFrfokup785z//wbfffgsRQX5+PjZv3owf//jHvV0WUYc6\nDIPJkydj4MCBTsMSExOVfYITJ05ESUkJAGDnzp1ISUmBRqOByWRCVFQU8vLyUFZWBofDoZzCtnDh\nQuTk5PTEcyHyCQ6HA3PmzEFgYCDmzZuH//u//8PMmTN7uyyiDnXr3kSbN29WzgUuLS3FnXfeqYwz\nGo2w2+3QaDROZ4oYDIZun0ZI5MvGjx+PgoKC3i6DqFO6fAD55ZdfRkBAgNMpYERE1Dd1acvgT3/6\nE/bs2YOPP/5YGWYwGJzOdy4pKYHRaITBYFB2JTUPNxgMbfYbFRXV6dMpiYhudJGRkTh+/Hj3OnF1\nv4rCwkIZNWqU8v/evXvFbDbLmTNnnNodPnxY4uLi5OrVq8r9X5pvPBUfHy/79++XxsZG+eEPfyh7\n9+5tc15ulOMTXnzxxd4uwS19oc6+UKMI6/Q01ulZnlh3drhlkJKSgk8//RRnz55FREQE1qxZg/T0\ndNTW1iIxMREAMGnSJGRmZsJsNiM5ORlmsxlqtRqZmZnK+b2ZmZlYtGgRampqMH36dNx3333dSzAi\nIvKoDsOg+cZRLS1ZsqTd9s888wyeeeaZVsPvuOMO5ToFIiLyPbwCuQsSEhJ6uwS39IU6+0KNAOv0\nNNbpezq8AtnbXP26FxERteaJdSe3DIiIiGFAREQMAyIiAsOAiIjAMCAiIjAMiIgIDAMiIgLDgIiI\nwDAgIiIwDIiICAwDIiICw4CIiMAwICIiMAyIiAgMAyIiAsOAiIjAMCAiIjAMiIgIDAMiIgLDgIiI\nwDAgIiIwDIiICAwDIiICw4CIiMAwICIiMAyIiAguwmDJkiXQ6XQYPXq0MqyyshKJiYmIiYlBUlIS\nqqqqlHHp6emIjo5GbGws9u3bpwz/6quvMHr0aERHR+OJJ57ogadBRETd0WEYLF68GLm5uU7DMjIy\nkJiYiGPHjmHq1KnIyMgAANhsNmzbtg02mw25ubl49NFHISIAgOXLlyMrKwsFBQUoKCho1SeRL9Nq\nQ6BSqTp8aLUhvV0mUbd0GAaTJ0/GwIEDnYbt2rULFosFAGCxWJCTkwMA2LlzJ1JSUqDRaGAymRAV\nFYW8vDyUlZXB4XAgPj4eALBw4UJlGqK+wOE4D0A6fDS1Ieq7On3MoKKiAjqdDgCg0+lQUVEBACgt\nLYXRaFTaGY1G2O32VsMNBgPsdnt36yYiIg/q1gHk5k1kIiLq29SdnUCn06G8vBx6vR5lZWUICwsD\n0PSNv7i4WGlXUlICo9EIg8GAkpISp+EGg6Hd/tPS0pS/ExISkJCQ0NkSiYiua1arFVar1aN9qqT5\nKG87ioqKMGPGDHz33XcAgKeffhqhoaFYuXIlMjIyUFVVhYyMDNhsNsyfPx/5+fmw2+2YNm0ajh8/\nDpVKhYkTJ2Ljxo2Ij4/H/fffj5/97Ge47777WhejUsFFOURe17T16+p9yfcu9R5PrDs73DJISUnB\np59+irNnzyIiIgK/+MUvsGrVKiQnJyMrKwsmkwnbt28HAJjNZiQnJ8NsNkOtViMzM1PZhZSZmYlF\nixahpqYG06dPbzMIiIio97jcMvAmbhmQL+KWAfk6T6w7eQUyERExDIg8Q80L06hP424iIhfc3U3E\nXUnUW7ibiIiIPIJhQEREDAMiImIYEBERunA7CqK+QqsNceNuohoAdd4oh8in8Wwium558iwgnk1E\nvoxnExERkUcwDIiIiGFAREQMAyIiAsOAyIt4/yLyXTybiK5bvng2Ec84op7As4mIiMgjGAZERMQw\nICIihgEREYFhQEREYBgQEREYBkREBIYBERGBYUBERGAYEBERGAZERASGARERgWFARERgGBAREboR\nBunp6Rg5ciRGjx6N+fPn4+rVq6isrERiYiJiYmKQlJSEqqoqp/bR0dGIjY3Fvn37PFI8ERF5Rpd+\nz6CoqAj33HMPjhw5gptuugk/+clPMH36dBw+fBiDBg3C008/jfXr1+P8+fPIyMiAzWbD/PnzceDA\nAdjtdkybNg3Hjh2Dn59zFvH3DMiT+HsGdKPotd8z0Gq10Gg0uHz5Murr63H58mWEh4dj165dsFgs\nAACLxYKcnBwAwM6dO5GSkgKNRgOTyYSoqCjk5+d3q3AiIvKcLoVBSEgIVqxYgaFDhyI8PBwDBgxA\nYmIiKioqoNPpAAA6nQ4VFRUAgNLSUhiNRmV6o9EIu93ugfKJiMgT1F2Z6MSJE3j99ddRVFSE4OBg\nPPjgg3jnnXec2jT/pmt72huXlpam/J2QkICEhISulEhEdN2yWq2wWq0e7bNLYfDll1/irrvuQmho\nKABg9uzZ+Ne//gW9Xo/y8nLo9XqUlZUhLCwMAGAwGFBcXKxMX1JSAoPB0GbfLcOAiIhau/aL8po1\na7rdZ5d2E8XGxmL//v2oqamBiOCjjz6C2WzGjBkzkJ2dDQDIzs7GrFmzAAAzZ87E1q1bUVtbi8LC\nQhQUFCA+Pr7bxRNdf9TKVnV7D602pLeLpOtQl7YM4uLisHDhQowfPx5+fn64/fbbsWzZMjgcDiQn\nJyMrKwsmkwnbt28HAJjNZiQnJ8NsNkOtViMzM7PDXUhEN656uDrjyOHgZ4c8r0unlvYUnlpKntRX\nTy3l6afUWb12aikREV1fGAZERMQwICIihgEREYFhQEREYBhQH6XVhrg8H5+I3MdTS6lPup5PG+Wp\npdRZPLWUiIg8gmFAREQMAyIiYhgQEREYBkREBIYBERGBYUBERGAYEBERGAZERASGARERgWFARERg\nGBARERgGREQEhgFRH6R2eftulUoFrTaktwulPkTd2wUQUWfVw/VtrgGHg7/pQO7jlgERETEMiIiI\nYUBERGAYEBERGAZERASGARERoRthUFVVhblz52LEiBEwm83Iy8tDZWUlEhMTERMTg6SkJFRVVSnt\n09PTER0djdjYWOzbt88jxRMRkWd0OQyeeOIJTJ8+HUeOHMG3336L2NhYZGRkIDExEceOHcPUqVOR\nkZEBALDZbNi2bRtsNhtyc3Px6KOPorGx0WNPgoiIuqdLYXDhwgV89tlnWLJkCQBArVYjODgYu3bt\ngsViAQBYLBbk5OQAAHbu3ImUlBRoNBqYTCZERUUhPz/fQ0+BiIi6q0thUFhYiMGDB2Px4sW4/fbb\n8cgjj+DSpUuoqKiATqcDAOh0OlRUVAAASktLYTQalemNRiPsdrsHyiciIk/o0u0o6uvr8fXXX+PN\nN9/EhAkT8OSTTyq7hJo13x+lPe2NS0tLU/5OSEhAQkJCV0okIrpuWa1WWK1Wj/bZpTAwGo0wGo2Y\nMGECAGDu3LlIT0+HXq9HeXk59Ho9ysrKEBYWBgAwGAwoLi5Wpi8pKYHBYGiz75ZhQERErV37RXnN\nmjXd7rNLu4n0ej0iIiJw7NgxAMBHH32EkSNHYsaMGcjOzgYAZGdnY9asWQCAmTNnYuvWraitrUVh\nYSEKCgoQHx/f7eKJiMgzunzX0jfeeAMPPfQQamtrERkZiS1btqChoQHJycnIysqCyWTC9u3bAQBm\nsxnJyckwm81Qq9XIzMzscBcSERF5l0pEXN8L10tUKhV8qBzyYU1fJly9V27kNk3t+Hm6MXhi3ckr\nkImIiGFAREQMAyIiAsOAiIjAMCAiIjAMiIgIDAMiIgLDgIiIwDAgIiIwDIiICAwD8kFabYhyC/T2\nHkTkWbw3Efkc3neI9yaizuG9iYioA2qXW1habUhvF0k+osu3sCYiX1cPV1sQDgd3uVETbhkQERHD\ngIiIGAZERASGARERgWFARERgGBARERgGREQEhgEREYFhQEREYBgQEREYBkREBIYBERGBYUBERGAY\nkJfxh2uIfFO3wqChoQHjxo3DjBkzAACVlZVITExETEwMkpKSUFVVpbRNT09HdHQ0YmNjsW/fvu5V\nTX2Ww3EeTbdV7uhBRN7WrTDYsGEDzGaz8m0uIyMDiYmJOHbsGKZOnYqMjAwAgM1mw7Zt22Cz2ZCb\nm4tHH30UjY2N3a+eiIg8osthUFJSgj179uDhhx9Wfm5t165dsFgsAACLxYKcnBwAwM6dO5GSkgKN\nRgOTyYSoqCjk5+d7oHwiIvKELofBU089hV/96lfw8/tfFxUVFdDpdAAAnU6HiooKAEBpaSmMRqPS\nzmg0wm63d3XWRETkYV362cvdu3cjLCwM48aNg9VqbbONq4OB7Y1LS0tT/k5ISEBCQkJXSiQium5Z\nrdZ2171d1aUw+OKLL7Br1y7s2bMHV65cwcWLF5GamgqdTofy8nLo9XqUlZUhLCwMAGAwGFBcXKxM\nX1JSAoPB0GbfLcOAiIhau/aL8po1a7rdZ5d2E61btw7FxcUoLCzE1q1bcc899+Dtt9/GzJkzkZ2d\nDQDIzs7GrFmzAAAzZ87E1q1bUVtbi8LCQhQUFCA+Pr7bxRMRkWd0acvgWs27fFatWoXk5GRkZWXB\nZDJh+/btAACz2Yzk5GSYzWao1WpkZmbyfHIiIh+ikuZTgXyASqWCD5VDPaDpS4Cr15htut/G/b74\nmev7PLHu5BXIRETEMCAiIoYBERGBYUBERGAYEBERGAZERASGARERgWFARERgGBARERgGREQEhgER\nEYFhQHSDUyu/PdLeQ6sN6e0iyQs8ctdSIuqr6uHqZnYOB+8wfCPglgERETEMiIiIYUBERGAYkIdo\ntSEuD0Ty1+2IfBcPIJNHOBzn4f6vbxGRr+GWARERMQyIiIhhQEREYBgQEREYBkREBIYBERGBYUBE\nRGAYEBERGAZERASGARERoYthUFxcjLvvvhsjR47EqFGjsHHjRgBAZWUlEhMTERMTg6SkJFRVVSnT\npKenIzo6GrGxsdi3b59nqiciIo9QiYg7N5RxUl5ejvLycowdOxbV1dW44447kJOTgy1btmDQoEF4\n+umnsX79epw/fx4ZGRmw2WyYP38+Dhw4ALvdjmnTpuHYsWPw83POIpVKhS6UQz6g6SZ07t6byFU7\ntul+G8/Oj59L3+aJdWeXtgz0ej3Gjh0LAAgMDMSIESNgt9uxa9cuWCwWAIDFYkFOTg4AYOfOnUhJ\nSYFGo4HJZEJUVBTy8/O7VTgReQt/GvNG0O1jBkVFRTh48CAmTpyIiooK6HQ6AIBOp0NFRQUAoLS0\nFEajUZnGaDTCbrd3d9ZE5BXNP43Z/qPprrXUl3UrDKqrqzFnzhxs2LABQUFBTuNc3b+e97YnIvId\nXf49g7q6OsyZMwepqamYNWsWgKatgfLycuj1epSVlSEsLAwAYDAYUFxcrExbUlICg8HQZr9paWnK\n3wkJCUhISOhqiURE1yWr1Qqr1erRPrt0AFlEYLFYEBoaitdee00Z/vTTTyM0NBQrV65ERkYGqqqq\nnA4g5+fnKweQjx8/3mrrgAeQ+y4eQPa1Nt6viZ/d3uOJdWeXwuDzzz/HD37wA4wZM0ZZoaenpyM+\nPh7Jyck4deoUTCYTtm/fjgEDBgAA1q1bh82bN0OtVmPDhg249957e+QJUe9gGPhaG+/XxM9u7+m1\nMOgpDIO+i2Hga228XxM/u72n104tJSKi6wvDgIiIGAZERMQwICIiMAyIiAgMAyLyCN6/qK/r8hXI\ndOPQakN47xlyofn+Re1zOHgLGl/GMCCXmoLAnXPRiaiv4m4iIiJiGBAREcOAiIjAMLjhabUhLs8C\nIaLrHw8g3+B4cJiIAG4ZEBERGAZE5DW8MM2XcTcREXkJL0zzZdwyICIihgERETEMiIgIDAMiIgLD\ngIiIwDC4rvHqYiJyF08tvY7x6mIiche3DIiIiGFARL6EVyn3Fu4mIiIfwquUewu3DPooHhwmIk9i\nGPRR/zs43NGD6HrEXUk9wathkJubi9jYWERHR2P9+vXenDURXTeadyW1/2j6skSd4bUwaGhowOOP\nP47c3FzYbDa89957OHLkiLdm71FWq7VH+7+xdgFZe7sAN1l7uwA3WXu7ADdZe7sAt/T0Z92XeC0M\n8vPzERUVBZPJBI1Gg3nz5mHnzp3emr1H9fQb5MbaBWTt7QLcZO3tAtxk7e0C3GTt7QLcciOFgdfO\nJrLb7YihZR88AAAGbElEQVSIiFD+NxqNyMvL89bs23X58mVcuXKlwzZqtRpardYj89NqQ7gJS9Tj\n1G5sQWsA1HXYIiCgH9LS0jxVlE/zWhj46q6N/v37u9WupKQEBoOhwzbur+h5VTBRz3J9imrT56zj\nNrW1fi7XXUFBA3HxYmWnqvNFXgsDg8GA4uJi5f/i4mIYjUanNpGRkT4bGtfWumbNmm705s5zvF7b\ntNWurWXpa3WvQdt19sS8utumZZ2+UlNbbdpbnr5Wc8ccjvO9vt6KjIzsdh8qEfHKDuj6+nrcdttt\n+PjjjxEeHo74+Hi89957GDFihDdmT0REHfDaloFarcabb76Je++9Fw0NDVi6dCmDgIjIR3hty4CI\niHyXVy86q6ysRGJiImJiYpCUlISqqqpWbYqLi3H33Xdj5MiRGDVqFDZu3Nip6b1VJwAsWbIEOp0O\no0ePdhqelpYGo9GIcePGYdy4ccjNzfXJOn1tebZ3UWJPL093Lob82c9+hujoaMTFxeHgwYOdmtYX\n6jSZTBgzZgzGjRuH+Pj4Xqvx6NGjmDRpEvr164df//rXnZrWV+r01rJ0p84///nPiIuLw5gxY/C9\n730P3377rdvTtiJe9POf/1zWr18vIiIZGRmycuXKVm3Kysrk4MGDIiLicDgkJiZGjhw54vb03qpT\nROQf//iHfP311zJq1Cin4WlpafLrX/+6R2rzZJ2+tDzr6+slMjJSCgsLpba2VuLi4sRms4lIzy7P\njubb7G9/+5v88Ic/FBGR/fv3y8SJE92e1hfqFBExmUxy7ty5HqmtMzWePn1aDhw4IM8++6y88sor\nnZrWF+oU8c6ydLfOL774QqqqqkREZO/evd16b3p1y2DXrl2wWCwAAIvFgpycnFZt9Ho9xo4dCwAI\nDAzEiBEjYLfb3Z7eW3UCwOTJkzFw4MA2x4kX9r51t05fWp6uLkrsqeXpzsWQLeufOHEiqqqqUF5e\n7tULKbtaZ0VFhTK+p9+T7tQ4ePBgjB8/HhqNptPT+kKdzbzx+XanzkmTJiE4OBhA02teUlLi9rTX\n8moYVFRUQKfTAQB0Op3TG7UtRUVFOHjwICZOnNil6b1VZ1veeOMNxMXFYenSpT22+6W7dfrS8mzr\nosTmLwFAzy1PV/PtqE1paanLaX2hTqDpOp9p06Zh/Pjx+MMf/tBrNfbEtJ3V3Xl5Y1kCna8zKysL\n06dP79K0QA+cTZSYmIjy8vJWw19++WWn/13dY6e6uhpz587Fhg0bEBgY2Gp8d+/R46k627J8+XK8\n8MILAIDnn38eK1asQFZWls/V6cnpu1tnR/P25PLszHxb8sY3wY50t87PP/8c4eHhOHPmDBITExEb\nG4vJkyd7ssRuv/+8pbvz+uc//4khQ4b06LIEOlfnJ598gs2bN+Of//xnp6dt5vEw+PDDD9sdp9Pp\nUF5eDr1ej7KyMoSFhbXZrq6uDnPmzMGCBQswa9asTk/vrTrb07L9ww8/jBkzZvhknb60PDu6KNGT\ny7Mz822vTUlJCYxGI+rq6lxO29t1Nl81Hx4eDqBp98ePf/xj5Ofne3wF5k6NPTFtZ3V3XkOGDAHQ\ns8uyM3V+++23eOSRR5Cbm6vsDu7Kc/TqbqKZM2ciOzsbAJCdne20om8mIli6dCnMZjOefPLJTk/v\nrTo7UlZWpvz9wQcftDqLx1O6W6cvLc/x48ejoKAARUVFqK2txbZt2zBz5kwAPbs8O5pvy/rfeust\nAMD+/fsxYMAA6HQ6t6b1hTovX74Mh8MBALh06RL27dvXI+/JziyPa7dgfG1Ztlent5alu3WeOnUK\ns2fPxjvvvIOoqKhOTduKRw9/u3Du3DmZOnWqREdHS2Jiopw/f15EROx2u0yfPl1ERD777DNRqVQS\nFxcnY8eOlbFjx8revXs7nL436hQRmTdvngwZMkQCAgLEaDTK5s2bRUQkNTVVRo8eLWPGjJEf/ehH\nUl5e7pN1+try3LNnj8TExEhkZKSsW7dOGd7Ty7Ot+W7atEk2bdqktHnsscckMjJSxowZI1999ZXL\nmntCV+s8ceKExMXFSVxcnIwcObJH63RVY1lZmRiNRtFqtTJgwACJiIgQh8PR7rS+Vqc3l6U7dS5d\nulRCQkKUdeWECRM6nLYjvOiMiIj4s5dERMQwICIiMAyIiAgMAyIiAsOAiIjAMCAiIjAMiIgIDAMi\nIgLw/1cFn4jgrGRLAAAAAElFTkSuQmCC\n",
       "text": [
        "<matplotlib.figure.Figure at 0x10db46110>"
       ]
      }
     ],
     "prompt_number": 291
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "plt.plot(w_true, 'o', color='g', alpha=0.8)\n",
      "_ = plt.title(\"Ground truth parameters\")"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x10db01a90>"
       ]
      }
     ],
     "prompt_number": 292
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "print(intercept_true)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "0.00766424730298\n"
       ]
      }
     ],
     "prompt_number": 293
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "def predict(w, X, intercept=0):\n",
      "    return np.where(np.dot(X, w) + intercept > 0, 1, -1)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 294
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Best performance possible (1 - noise level):"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "np.mean(predict(w_true, X, intercept=intercept_true) == y)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 295,
       "text": [
        "0.99460000000000004"
       ]
      }
     ],
     "prompt_number": 295
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 296
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from sklearn.linear_model import PassiveAggressiveClassifier\n",
      "\n",
      "%time clf = PassiveAggressiveClassifier(C=1e6, n_iter=100).fit(X_train, y_train)\n",
      "\n",
      "plt.plot(w_true / np.abs(w_true).max(), 'o', color='g', alpha=0.6, label='true')\n",
      "coef_max = np.abs(clf.coef_.ravel()).max()\n",
      "plt.plot(clf.coef_.ravel() / coef_max, 'o', color='b', alpha=0.6, label='estimate')\n",
      "\n",
      "clf.score(X_test, y_test)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "CPU times: user 242 ms, sys: 832 \u00b5s, total: 243 ms\n",
        "Wall time: 244 ms\n"
       ]
      },
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 317,
       "text": [
        "0.96599999999999997"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n99572bt3L9/73veisi4yMzPJzMxk2bJlANxzzz0cPnyYuXPnRl1d/Pd//zdf+cpXSElJwWAw8M1v\nfpPPP/88Kuti0Fi/EyPb06amJjIyMsa9lqYBYPhCMafTyY4dO7BYLFoWaVqpqsqDDz5IUVERP/vZ\nz7zHLRYL27dvB2D79u3ewBDJXnjhBWw2G2fOnOHtt9/m61//Ov/+7/8elXUxd+5csrKy+OKLLwDY\ns2cPxcXF3HXXXVFXF4sWLWL//v309fWhqip79uyhqKgoKuti0Fi/ExaLhbfffhun08mZM2eoq6vj\nS1/60vgXC/aAxbV677331IULF6p5eXnqCy+8oHVxptXHH3+sKoqiXn/99eqSJUvUJUuWqO+//77a\n3t6urly5Us3Pz1dXrVqldnZ2al3UabVv3z71rrvuUlVVjdq6OHr0qHrjjTeqpaWl6t133612dXVF\nbV289NJLalFRkVpSUqLed999qtPpjJq62LBhg5qenq4ajUY1MzNT/cMf/jDue3/++efVvLw8taCg\nQN29e/dVry8LwYQQIkppvhBMCCGENiQACCFElJIAIIQQUUoCgBBCRCkJAEIIEaUkAAghRJSSACCE\nEFFKAoAQQkSp/x/jHvRD490aBwAAAABJRU5ErkJggg==\n",
       "text": [
        "<matplotlib.figure.Figure at 0x10b9a46d0>"
       ]
      }
     ],
     "prompt_number": 317
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from sklearn.linear_model import SGDClassifier\n",
      "\n",
      "%time clf = SGDClassifier(loss='log', penalty='l1', alpha=1e-6, n_iter=300).fit(X_train, y_train)\n",
      "\n",
      "plt.plot(w_true / np.abs(w_true).max(), 'o', color='g', alpha=0.6, label='true')\n",
      "coef_max = np.abs(clf.coef_.ravel()).max()\n",
      "plt.plot(clf.coef_.ravel() / coef_max, 'o', color='b', alpha=0.6, label='estimate')\n",
      "\n",
      "clf.score(X_test, y_test)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "CPU times: user 2.05 s, sys: 3.73 ms, total: 2.05 s\n",
        "Wall time: 2.05 s\n"
       ]
      },
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 301,
       "text": [
        "0.98119999999999996"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x10db16650>"
       ]
      }
     ],
     "prompt_number": 301
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Average SGD for penalized logistic regression with 1/t^a with a in [0.5, 0.75]. To make is simpler we make epoch-sized macro-iterations and thus memorize the coef only at those points. A sample level, online averaging scheme (potentially exponentially weighted) would be more correct and actually improve upon the SGD model which is the case here:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from collections import defaultdict\n",
      "\n",
      "clf = SGDClassifier(loss='log', penalty='l1', learning_rate='invscaling',\n",
      "                    power_t=0.6, eta0=1e5, alpha=1e-6)\n",
      "n_iter = 1000\n",
      "average_history = 100\n",
      "weights = []\n",
      "intercepts = []\n",
      "scores = defaultdict(list)\n",
      "for i in range(n_iter):\n",
      "    clf.partial_fit(X_train, y_train, classes=[-1, 1])\n",
      "    weights.append(clf.coef_.ravel().copy())\n",
      "    intercepts.append(clf.intercept_[0])\n",
      "    mean_coef = np.mean(weights[-average_history:], axis=0)\n",
      "    mean_intercept = np.mean(intercepts[-average_history:], axis=0)\n",
      "    \n",
      "    scores['sgd_test'].append(clf.score(X_test, y_test))\n",
      "    scores['sgd_train'].append(clf.score(X_train, y_train))\n",
      "    \n",
      "    # XXX: clf might have a non-zero bias...\n",
      "    y_test_pred = predict(mean_coef, X_test, intercept=mean_intercept)\n",
      "    scores['asgd_test'].append(np.mean(y_test_pred == y_test))\n",
      "    y_train_pred = predict(mean_coef, X_train, intercept=mean_intercept)\n",
      "    scores['asgd_train'].append(np.mean(y_train_pred == y_train))\n",
      "\n",
      "plt.figure(figsize=(13, 4))\n",
      "plt.subplot(121)\n",
      "plt.plot(w_true / np.abs(w_true).max(), 'o', color='g', alpha=0.6, label='true')\n",
      "coef_max = np.abs(mean_coef).max()\n",
      "plt.plot(mean_coef / coef_max, 'o', color='b', alpha=0.6, label='estimate')\n",
      "print(\"Intercept: {}\".format(clf.intercept_[0] / coef_max))\n",
      "\n",
      "plt.subplot(122)\n",
      "for name, values in sorted(scores.items(), reverse=True):\n",
      "    plt.plot(values, label=name)\n",
      "    print(\"{}: {:.4f}\".format(name, values[-1]))\n",
      "_ = plt.legend(loc='best')\n",
      "plt.ylim(0.90, 1)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Intercept: 0.00420728074987\n",
        "sgd_train: 0.9945\n",
        "sgd_test: 0.9896\n",
        "asgd_train: 0.9947\n",
        "asgd_test: 0.9900\n"
       ]
      },
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 314,
       "text": [
        "(0.9, 1)"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nj0Mghy5Q9AAAAABJRU5ErkJggg==\n",
       "text": [
        "<matplotlib.figure.Figure at 0x10ce2c110>"
       ]
      }
     ],
     "prompt_number": 314
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from sklearn.linear_model import LogisticRegression\n",
      "\n",
      "%time lr = LogisticRegression(C=1e6, penalty='l1').fit(X_train, y_train)\n",
      "\n",
      "plt.plot(w_true / np.abs(w_true).max(), 'o', color='g', alpha=0.6, label='true')\n",
      "coef_max = np.abs(lr.coef_.ravel()).max()\n",
      "plt.plot(lr.coef_.ravel() / coef_max, 'o', color='b', alpha=0.6, label='estimate')\n",
      "\n",
      "print(\"Log Reg test: {:.4f}\".format(lr.score(X_test, y_test)))\n",
      "print(\"Intercept: {}\".format(lr.intercept_[0] / coef_max))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "CPU times: user 3.13 s, sys: 11.2 ms, total: 3.14 s\n",
        "Wall time: 3.15 s\n",
        "Log Reg test: 0.9936\n",
        "Intercept: 0.00399473383487\n"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nP+sE2nVnkmIRAAAAAElFTkSuQmCC\n",
       "text": [
        "<matplotlib.figure.Figure at 0x10faa9490>"
       ]
      }
     ],
     "prompt_number": 303
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from sklearn.svm import LinearSVC\n",
      "\n",
      "%time svc = LinearSVC(C=1e6).fit(X_train, y_train)\n",
      "\n",
      "plt.plot(w_true / np.abs(w_true).max(), 'o', color='g', alpha=0.6, label='true')\n",
      "coef_max = np.abs(svc.coef_.ravel()).max()\n",
      "plt.plot(svc.coef_.ravel() / coef_max, 'o', color='b', alpha=0.6, label='estimate')\n",
      "\n",
      "print(\"Intercept: {}\".format(svc.intercept_[0] / coef_max))\n",
      "print(\"SVM test: {:.4f}\".format(svc.score(X_test, y_test)))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "CPU times: user 1.65 s, sys: 4.66 ms, total: 1.66 s\n",
        "Wall time: 1.66 s\n",
        "Intercept: 0.00550718282395\n",
        "SVM test: 0.9700\n"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x1100be610>"
       ]
      }
     ],
     "prompt_number": 313
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [],
     "language": "python",
     "metadata": {},
     "outputs": []
    }
   ],
   "metadata": {}
  }
 ]
}